@echo off
chcp 65001 >nul
echo ========================================
echo           导航网站部署脚本
echo ========================================
echo.

:: 检查是否安装了Node.js
node --version >nul 2>&1
if %errorlevel% neq 0 (
    echo ❌ 错误: 未检测到Node.js，请先安装Node.js
    echo 下载地址: https://nodejs.org/
    pause
    exit /b 1
)

:: 检查是否安装了npm
npm --version >nul 2>&1
if %errorlevel% neq 0 (
    echo ❌ 错误: 未检测到npm
    pause
    exit /b 1
)

echo ✅ Node.js环境检查通过
echo.

:: 检查.env文件是否存在
if not exist ".env" (
    echo ❌ 错误: .env配置文件不存在
    echo 请确保.env文件存在并配置了正确的数据库信息
    pause
    exit /b 1
)

echo ✅ 配置文件检查通过
echo.

:: 安装依赖
echo 📦 正在安装项目依赖...
npm install
if %errorlevel% neq 0 (
    echo ❌ 依赖安装失败
    pause
    exit /b 1
)

echo ✅ 依赖安装完成
echo.

:: 提示用户选择部署方式
echo 请选择部署方式:
echo 1. 本地部署 (需要本地MySQL)
echo 2. Docker部署 (推荐)
echo 3. Docker部署 + phpMyAdmin
echo 4. 仅启动应用 (假设数据库已运行)
echo.
set /p choice=请输入选择 (1-4): 

if "%choice%"=="1" goto local_deploy
if "%choice%"=="2" goto docker_deploy
if "%choice%"=="3" goto docker_deploy_with_tools
if "%choice%"=="4" goto app_only

echo ❌ 无效选择
pause
exit /b 1

:local_deploy
echo.
echo 🚀 启动本地部署...
echo ⚠️  请确保本地MySQL服务已启动并配置正确
echo.
echo 启动应用服务器...
npm start
goto end

:docker_deploy
echo.
echo 🐳 启动Docker部署...

:: 检查Docker是否安装
docker --version >nul 2>&1
if %errorlevel% neq 0 (
    echo ❌ 错误: 未检测到Docker，请先安装Docker Desktop
    echo 下载地址: https://www.docker.com/products/docker-desktop
    pause
    exit /b 1
)

:: 检查Docker Compose是否可用
docker compose version >nul 2>&1
if %errorlevel% neq 0 (
    echo ❌ 错误: Docker Compose不可用
    pause
    exit /b 1
)

echo ✅ Docker环境检查通过
echo.
echo 正在构建和启动容器...
docker compose up --build -d
if %errorlevel% neq 0 (
    echo ❌ Docker部署失败
    pause
    exit /b 1
)

echo.
echo ✅ Docker部署成功！
echo.
echo 📱 前端地址: http://localhost:7531
echo ⚙️  管理后台: http://localhost:7531/admin
echo 🔗 API地址: http://localhost:7531/api/navigation
echo.
echo 💡 使用以下命令管理容器:
echo    查看日志: docker compose logs -f
echo    停止服务: docker compose down
echo    重启服务: docker compose restart
echo.
goto end

:docker_deploy_with_tools
echo.
echo 🐳 启动Docker部署 (包含phpMyAdmin)...

:: 检查Docker是否安装
docker --version >nul 2>&1
if %errorlevel% neq 0 (
    echo ❌ 错误: 未检测到Docker，请先安装Docker Desktop
    echo 下载地址: https://www.docker.com/products/docker-desktop
    pause
    exit /b 1
)

:: 检查Docker Compose是否可用
docker compose version >nul 2>&1
if %errorlevel% neq 0 (
    echo ❌ 错误: Docker Compose不可用
    pause
    exit /b 1
)

echo ✅ Docker环境检查通过
echo.
echo 正在构建和启动容器...
docker compose --profile tools up --build -d
if %errorlevel% neq 0 (
    echo ❌ Docker部署失败
    pause
    exit /b 1
)

echo.
echo ✅ Docker部署成功！
echo.
echo 📱 前端地址: http://localhost:7531
echo ⚙️  管理后台: http://localhost:7531/admin
echo 🔗 API地址: http://localhost:7531/api/navigation
echo 🗄️  phpMyAdmin: http://localhost:8080
echo.
echo 💡 使用以下命令管理容器:
echo    查看日志: docker compose logs -f
echo    停止服务: docker compose down
echo    重启服务: docker compose restart
echo.
goto end

:app_only
echo.
echo 🚀 仅启动应用服务器...
echo ⚠️  请确保数据库服务已运行
echo.
npm start
goto end

:end
echo.
echo 🎉 部署完成！
echo.
echo 如需停止服务，请按 Ctrl+C
if "%choice%"=="2" echo 或运行: docker compose down
if "%choice%"=="3" echo 或运行: docker compose down
echo.
pause